package com.itheima.service;

import com.itheima.entity.PageResult;
import com.itheima.exceptions.BusinessException;
import com.itheima.pojo.Menu;

import java.util.List;

/**
 * @author W.J.Y
 */
public interface MenuService {

    /**
     * 新增菜单
     * @param menu  菜单实例
     * @throws BusinessException    可能出现的业务异常
     */
    void add(Menu menu) throws BusinessException;

    /**
     * 编辑用户
     * @param menu 菜单实例
     * @throws BusinessException    可能出现的业务异常
     */
    void update(Menu menu) throws BusinessException;


    /**
     * 根据ID删除菜单
     * @param id    菜单ID
     * @throws BusinessException 业务异常
     */
    void delete(int id) throws BusinessException;


    /**
     * 分页查询所有菜单信息
     * @param pageNum   当前页
     * @param pageSize  每页显示条数
     * @param queryString   查询语句
     * @return  返回的分页参数及结果
     */
    PageResult findPage(int pageNum, int pageSize, String queryString);

    /**
     * 根据菜单ID查询用户信息
     * @param id    菜单ID
     * @return  菜单信息
     */
    Menu findById(int id);

    /**
     * 根据菜单级别查询菜单信息
     * @param level 菜单级别
     * @return  该级别菜单信息
     */
    List<Menu> findByLevel(int level);

    /**
     * 查询全部菜单
     * @return  全部菜单信息
     */
    List<Menu> findAll();
}
